perm filename PTRTST[D,SYS] blob sn#180200 filedate 1977-05-16 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE	PTRTST	TEST PTR, PTP IN MODES 0,10,13,14
C00007 ENDMK
C⊗;
	TITLE	PTRTST	TEST PTR, PTP IN MODES 0,10,13,14
A←1
B←2
C←3
D←4





PTR←0
PTP←1

FIRST←←.
ST:	RESET
	OUTSTR	[ASCIZ/TYPE Y TO PUNCH THE TEST TAPE.
/]
	INCHWL	A
	CLRBFI
	CAIE	A,"Y"
	CAIN	A,"Y"+40
	JRST	DOPNCH
DOREAD:	OUTSTR	[ASCIZ/LOAD TEST TAPE, START READER, AND TYPE RETURN
/]
	INCHWL	A
	CLRBFI

RD1:	INIT	PTR,0		;START IN ASCII MODE
	'PTR   '
	0,,IBUF
	HALT	RD1
	INBUF	PTR,2
	MOVEI	C,0		;COUNT PASSES
AML0:	MOVEI	B,1
AML1:	JSP	D,READ		;READ TAPE.
	CAME	A,B
	HALT	.+1
	CAIGE	B,176
	AOJA	B,AML1
	CAIGE	C,3
	AOJA	C,AML0
	RELEAS	PTR,
	OUTSTR	[ASCIZ/TYPE RETURN TO CONTINUE/]
	INCHWL
	CLRBFI

	INIT	PTR,10		;THEN IMAGE MODE
	'PTR   '
	0,,IBUF
	HALT	RD1
	MOVSI	A,004400
	MOVEM	A,IBUF+1	;SETUP BYTE POINTER
ILX:	JSP	D,READ
	CAIE	A,377
	JRST	ILX		;SKIP UNTIL WE GET TO IMAGE PART
	MOVEI	C,0
IML0:	MOVEI	B,0
IML1:	JSP	D,READ
	CAME	A,B
	HALT	.+1
	CAIGE	B,377
	AOJA	B,IML1
	CAIGE	C,1
	AOJA	C,IML0
	RELEAS	PTR,
	OUTSTR	[ASCIZ/TYPE RETURN TO CONTINUE/]
	INCHWL
	CLRBFI

	INIT	PTR,14		;THEN BINARY MODE.
	'PTR   '
	0,,IBUF
	HALT	RD1
	JSP	D,READ
	CAME	A,[-1]
	HALT	.
	MOVEI	C,0
CBL0:	MOVE	B,[FIRST-LAST,,FIRST]
CBL1:	JSP	D,READ
	CAME	A,(B)
	HALT	.+1
	AOBJN	B,CBL1
	CAIGE	C,1
	AOJA	C,CBL0
	MOVNI	C,1
	JSP	D,READ
	JRST	.-1


DONE:	CAME	C,[-1]
	OUTSTR	[ASCIZ/PREMATURE END OF TAPE.
/]
	CLOSE	PTR,
	OUTSTR	[ASCIZ/DONE.
/]
	JRST	DOREAD

READ:	SOSLE	IBUF+2
	JRST	READ1
	INPUT	PTR,
	STATO	PTR,760000
	JRST	READ1
	STATZ	PTR,20000
	JRST	DONE
	HALT	.

READ1:	ILDB	A,IBUF+1
	JRST	(D)

DOPNCH:	INIT	PTP,10
	'PTP   '
	OBUF,,
	HALT	DOPNCH
	OUTBUF	PTP,2
	MOVEI	C,0		;COUNT PASSES
PNA0:	MOVEI	A,1
PNA1:	JSP	D,PUNCH		;PUNCH TAPE.
	CAIGE	A,176
	AOJA	A,PNA1
	CAIGE	C,3		;4 PASSES
	AOJA	C,PNA0
	MOVEI	C,5*40*2
	MOVEI	A,1
	JSP	D,PUNCH
	SOJGE	C,.-1
	MOVEI	A,377
	JSP	D,PUNCH
	MOVEI	C,0
PNI0:	MOVEI	A,0
PNI1:	JSP	D,PUNCH
	CAIGE	A,377
	AOJA	A,PNI1
	CAIGE	C,1		;2 PASSES
	AOJA	C,PNI0
	MOVEI	C,40*2
	MOVEI	A,0
	JSP	D,PUNCH
	SOJGE	C,.-1
	CLOSE	PTP,
	INIT	PTP,14
	'PTP   '
	OBUF,,
	HALT	.-3
	MOVNI	A,1
	JSP	D,PUNCH
	MOVEI	C,0
PCB0:	MOVE	B,[FIRST-LAST,,FIRST]
PCB1:	MOVE	A,(B)
	JSP	D,PUNCH
	AOBJN	B,PCB1
	CAIGE	C,1
	AOJA	C,PCB0
	CLOSE	PTP,
	OUTSTR	[ASCIZ/TEST TAPE PUNCHED.
/]
	JRST	DOREAD


PUNCH:	SOSG	OBUF+2
	OUTPUT	PTP,
	IDPB	A,OBUF+1
	JRST	(D)


	XLIST	
	LIT
	LIST
LAST←←.-1

OBUF:	BLOCK	3
IBUF:	BLOCK	3

	END	ST